package com.lyh.service;

import com.lyh.pojo.Condition;
import com.lyh.pojo.Result;
import com.lyh.pojo.Route;
import com.lyh.pojo.Ticket;

import java.util.List;

public interface TicketService {

    Result<String> queryPageLoading(String from,  String to, String date, int count, String high, String precise);
    /**
     * 根据出发地 到达地 出发日期来查询火车票
     * @param from 出发地
     * @param to 到达地
     * @param date 出发日期
     * @return 符合地点和时间的票集合
     */
    Result<String> queryRoutesByStation(String from, String to, String date, int count, String highSpeed, String precise);

    /**
     * 查询ticket页面左边条件
     */
    Condition queryCondition(String from, String to, String date);

    /**
     * 购票方法
     */
    Result<String> purchaseTicket(String no,String userId);

    /**
     * 支付方法
     */
    Result<String> pay(String orderId);

    /**
     * 通过userId, 查询未支付和支付的订单
     * paidStatus有五个个状态, 0查询未支付的订单 1查询已支付的车票 2查询全部车票 3查询已退款车票 4查询已过期(已完成)车票
     */
    Result<Ticket> queryTicket(Integer userId, int paidStatus);

    /**
     * 退款方法
     * @return 退款状态码
     * 0.退款失败:该订单或该用户号不存在
     * 1.退款成功
     * 退款失败:2退款时间已过 3已退款 4未付款
     */
    int refund(Integer userId, int orderId);

    /**
     * 取消订单方法
     * @return 取消状态码 0成功 1订单不存在
     */
    int cancel(Integer userId, int orderId);

}
